/*
* websocket配置文件
*/

const path = require('path')
const utils = require('../utils/file_utils')
const WebSocket = require('ws')
// 生产websocket serve对象,该服务器的端口号是9999
const wss = new WebSocket.Server({
    port: 9999
})
module.exports.listen = () => {
    // 监听事件, 当客户端向服务器链接时，会触发
    wss.on('connection', (client) => {
        console.log('有客户端链接');
        // 监听事件, 当客户端向服务器发送数据时，会触发
        client.on("message", async msg => {
            console.log('有客户端发送数据', msg);
            let payload = JSON.parse(msg)
            console.log('解析后的数据', msg);
            const action = payload.action;
            if (action == 'getData') {
                console.log('getData');
                const filePath = path.join(__dirname, '../data/'+payload.chartName+'.json')
                const data = await utils.getFileJsonData(filePath);
                console.log('发送的数据', data);
                payload.data = data;
                client.send(JSON.stringify(payload))
            } else {
                // wss.clients为所有和当前websocket服务器链接的客户端
                // 将当前发起请求分发给其他所有客户端
                wss.clients.forEach(client => {
                    client.send(msg.toString())
                })
            }
        })
    })
}
